package generic.method;

import java.util.ArrayList;
import java.util.List;

public class GenericVarargs {
    /**
     * 注解保证我们不会对变长参数列表进行任何修改，只从中读取。
     * 如果没有此注解，编译器将无法知道这些并会发出警告
     * @param args
     * @param <T>
     * @return
     */
    @SafeVarargs
    public static <T> List<T> makeList(T... args) {
        List<T> result = new ArrayList<>();
        for (T item : args)
            result.add(item);
        return result;
    }

    public static void main(String[] args) {
        List<String> strList = GenericVarargs.makeList("1", "2", "3");
        System.out.println(strList);
        strList = GenericVarargs.makeList("ABCDEFFHIJKLMNOPQRSTUVWXYZ".split(""));
        System.out.println(strList);
    }
}
